﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using DTO;

namespace DAO
{

	public class NHANVIENDAO:IData<NHANVIEN> 
 	{
		public NHANVIENDAO(String myconnecString) : base(myconnecString) { }

		protected override int InsertOnSubmit(ref NHANVIEN item, int t) {
			 SqlParameter p = new SqlParameter(); 
			 if( t == 0)
				p.Direction = ParameterDirection.Output;
			 p.ParameterName = "@" + NHANVIEN.c_ID;
			 p.Value = item.ID;
			 Object obj = item.ID; 
			int i = connec.ExecuteNonQuery("sp_NHANVIEN", CommandType.StoredProcedure,p,ref obj,new SqlParameter("@flag", t),
				 new SqlParameter("@" + NHANVIEN.c_HONV, item.HONV), new SqlParameter("@" + NHANVIEN.c_TENNV, item.TENNV),
				 new SqlParameter("@" + NHANVIEN.c_PHAI, item.PHAI), new SqlParameter("@" + NHANVIEN.c_NGAYSINH, item.NGAYSINH),
				 new SqlParameter("@" + NHANVIEN.c_NOISINH, item.NOISINH), new SqlParameter("@" + NHANVIEN.c_THANHDANH, item.THANHDANH),
				 new SqlParameter("@" + NHANVIEN.c_DANGBANTD, item.DANGBANTD), new SqlParameter("@" + NHANVIEN.c_NGAYBANTD, item.NGAYBANTD),
				 new SqlParameter("@" + NHANVIEN.c_DIACHI, item.DIACHI), new SqlParameter("@" + NHANVIEN.c_NGHENGHIEP, item.NGHENGHIEP),
				 new SqlParameter("@" + NHANVIEN.c_SODIENTHOAI, item.SODIENTHOAI), new SqlParameter("@" + NHANVIEN.c_NHAPMON, item.NHAPMON),
				 new SqlParameter("@" + NHANVIEN.c_NHAPMON2, item.NHAPMON2), new SqlParameter("@" + NHANVIEN.c_NAMVAOCQ, item.NAMVAOCQ),
				 new SqlParameter("@" + NHANVIEN.c_CHUYENMON, item.CHUYENMON), new SqlParameter("@" + NHANVIEN.c_THANHGIAO1, item.THANHGIAO1),
				 new SqlParameter("@" + NHANVIEN.c_THANHGIAO2, item.THANHGIAO2), new SqlParameter("@" + NHANVIEN.c_THANHGIAO3, item.THANHGIAO3),
				 new SqlParameter("@" + NHANVIEN.c_TDID, item.TDID), new SqlParameter("@" + NHANVIEN.c_VUID, item.VUID),
				 new SqlParameter("@" + NHANVIEN.c_traikyID, item.traikyID), new SqlParameter("@" + NHANVIEN.c_tinhId, item.tinhId),
				 new SqlParameter("@" + NHANVIEN.c_quanId, item.quanId), new SqlParameter("@" + NHANVIEN.c_namTraiKy, item.namTraiKy),
				 new SqlParameter("@" + NHANVIEN.c_quylieu, item.quylieu));
			if(t == 0)
				item.ID = Convert.ToInt32(obj);
			return i;
		}

		public override NHANVIEN GetItem(IDataReader dr)
		{
			NHANVIEN obj = new NHANVIEN();
            try
            {
                obj.ID = Convert.ToInt32(dr[NHANVIEN.c_ID]);
                obj.HONV = Convert.ToString(dr[NHANVIEN.c_HONV]);
                obj.TENNV = Convert.ToString(dr[NHANVIEN.c_TENNV]);
                obj.PHAI = Convert.ToBoolean(dr[NHANVIEN.c_PHAI]);
                obj.NGAYSINH = Convert.ToDateTime(dr[NHANVIEN.c_NGAYSINH]);
                obj.NOISINH = Convert.ToString(dr[NHANVIEN.c_NOISINH]);
                obj.THANHDANH = Convert.ToString(dr[NHANVIEN.c_THANHDANH]);
                obj.DANGBANTD = Convert.ToString(dr[NHANVIEN.c_DANGBANTD]);
                obj.NGAYBANTD = Convert.ToDateTime(dr[NHANVIEN.c_NGAYBANTD]);
                obj.DIACHI = Convert.ToString(dr[NHANVIEN.c_DIACHI]);
                obj.NGHENGHIEP = Convert.ToString(dr[NHANVIEN.c_NGHENGHIEP]);
                obj.SODIENTHOAI = Convert.ToString(dr[NHANVIEN.c_SODIENTHOAI]);
                obj.NHAPMON = Convert.ToString(dr[NHANVIEN.c_NHAPMON]);
                obj.NHAPMON2 = Convert.ToInt16(dr[NHANVIEN.c_NHAPMON2]);
                obj.NAMVAOCQ = Convert.ToInt16(dr[NHANVIEN.c_NAMVAOCQ]);
                obj.CHUYENMON = Convert.ToString(dr[NHANVIEN.c_CHUYENMON]);
                obj.THANHGIAO1 = Convert.ToString(dr[NHANVIEN.c_THANHGIAO1]);
                obj.THANHGIAO2 = Convert.ToString(dr[NHANVIEN.c_THANHGIAO2]);
                obj.THANHGIAO3 = Convert.ToString(dr[NHANVIEN.c_THANHGIAO3]);
                obj.TDID = Convert.ToInt32(dr[NHANVIEN.c_TDID]);
                obj.VUID = Convert.ToInt32(dr[NHANVIEN.c_VUID]);
                obj.traikyID = Convert.ToInt32(dr[NHANVIEN.c_traikyID]);
                obj.tinhId = Convert.ToInt32(dr[NHANVIEN.c_tinhId]);
                obj.quanId = Convert.ToInt32(dr[NHANVIEN.c_quanId]);
                obj.namTraiKy = Convert.ToString(dr[NHANVIEN.c_namTraiKy]);
                obj.quylieu = Convert.ToBoolean(dr[NHANVIEN.c_quylieu]);
                obj.DIACHIFUll = Convert.ToString(dr[NHANVIEN.c_DIACHIFUll]);
            }
            catch { }
			return obj;
		}

		public override List<NHANVIEN> GetAll()
		{
			return GetAll("sp_GetAllNHANVIEN", CommandType.StoredProcedure);
		}

		public override NHANVIEN GetItemById(object id)
		{
			return GetAll().SingleOrDefault(p => p.ID == Convert.ToInt32(id));
		}
		public override NHANVIEN GetItemById(NHANVIEN item){
			throw new NotImplementedException();
		}

	}

 }
